<?php
require_once 'Endereco.php';
require_once 'Bairro.php';
require_once 'Cidade.php';
require_once 'DAO/DaoComentarioRepublica.php';
require_once 'DAO/DaoUsuarioRepublica.php';
require_once 'DAO/DaoImagemRepublica.php';
require_once 'DAO/DaoSolicitacoes.php';
require_once 'DAO/DaoEventoRepublica.php';

class Republica {
    private $codigo;
    private $nome;
    private $endereco;
    private $descricaoEndereco;
    private $numero;
    private $bairro;
    private $cidade;
    private $quantiaVagas;
    private $tipo;
    private $dataCriacao;
    private $ativa;
    
    public function getComentarios($quantia){
        $DaoComentario = new DaoComentarioRepublica();
        if($this->codigo!=NULL and $this->codigo!=0){
            return $DaoComentario->getComentariosByRepublica($this, $quantia);
        }
        return NULL;
    }
    
    public function getMoradores() {
        $DaoUsuarioRepublica = new DaoUsuarioRepublica();
        if($this->codigo!=NULL and $this->codigo!=0){
            return $DaoUsuarioRepublica->getUsuariosRepublica($this->codigo);
        }
        return NULL;
    }
    
    public function getImagemPrincipal(){
        $DaoImagemRepublica = new DaoImagemRepublica();
        if($this->codigo!=NULL and $this->codigo!=0){
            $image = $DaoImagemRepublica->getImagemPrincipal($this->codigo);
        }
        if($image==NULL){
            $image = new Imagem();
            $image->setImagem('republicas/icon-Republica.png');
        }
        return $image;
    }
    
    public function getImagens($quantia=0) {
        $DaoImagemRepublica = new DaoImagemRepublica();
        if($this->codigo!=NULL and $this->codigo!=0){
            return $DaoImagemRepublica->getImagens($this->codigo,$quantia);
        }
        return NULL;
    }
    
    public function getSolicitacoes() {
        $ds = new DaoSolicitacoes();
        if($this->codigo!=0){
            return $ds->getSolicitacoes($this->codigo);
        }
        return null;
    }
    
    public function getEventos() {
        $DaoEventoRepublica = new DaoEventoRepublica();
        return $DaoEventoRepublica->getEventosByRepublica($this->getCodigo());
    }


    public function getCodigo() {
        return $this->codigo;
    }

    public function setCodigo($codigo) {
        $this->codigo = $codigo;
    }

    public function getNome() {
        return $this->nome;
    }

    public function setNome($nome) {
        $this->nome = $nome;
    }

    public function getEndereco() {
        return $this->endereco;
    }

    public function setEndereco(Endereco $endereco) {
        $this->endereco = $endereco;
    }

    public function getDescricaoEndereco() {
        return $this->descricaoEndereco;
    }

    public function setDescricaoEndereco($descricaoEndereco) {
        $this->descricaoEndereco = $descricaoEndereco;
    }

    public function getNumero() {
        return $this->numero;
    }

    public function setNumero($numero) {
        $this->numero = $numero;
    }

    public function getBairro() {
        return $this->bairro;
    }

    public function setBairro(Bairro $bairro) {
        $this->bairro = $bairro;
    }

    public function getCidade() {
        return $this->cidade;
    }

    public function setCidade(Cidade $cidade) {
        $this->cidade = $cidade;
    }
    
    public function getQuantiaVagas() {
        return $this->quantiaVagas;
    }

    public function setQuantiaVagas($quantiaVagas) {
        $this->quantiaVagas = $quantiaVagas;
    }
    
    public function getTipo() {
        return $this->tipo;
    }

    public function setTipo($tipo) {
        $this->tipo = $tipo;
    }
    
    public function getDataCriacao() {
        return $this->dataCriacao;
    }

    public function setDataCriacao($dataCriacao) {
        $this->dataCriacao = $dataCriacao;
    }

    public function getAtiva() {
        return $this->ativa;
    }

    public function setAtiva($ativa) {
        $this->ativa = $ativa;
    }

}

?>
